package com.fidelizarte.web.ws;
import java.sql.Timestamp;

import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.fidelizarte.common.util.SeguridadesException;
import com.fidelizarte.ejb.servicio.frontend.ServicioCampaniaRemote;

/**
 * Clase que ofrece web services que tiene relacion con campania de las empresas
 * 
 * @author jose Auquilla
 * 
 */
@Path("/wsCampania")
public class WSCampania {
	private static final Logger log = LoggerFactory.getLogger(WSCampania.class);

	ServicioCampaniaRemote servicioCampania;
	

	/**
	 * Metodo de web services que registra una nueva campania
	 * 
	 * @param idEmpresaMain
	 * @return
	 * @throws NamingException
	 */
	@GET()
	@Produces(MediaType.APPLICATION_JSON)
	@Path("/datosCampania/setCampania/{nombreCampania}/{descripcion}/{fechaInicio}/{tipoCampania}/{fechaCierre}"
			+ "/{empresaResponsable}/{responsable}")
	public boolean setCampania(
			@PathParam("nombreCampania") String nombreCampania,
			@PathParam("descripcion") String descripcion,
			@PathParam("fechaInicio") String fechaInicio,
			@PathParam("tipoCampania") Integer tipoCampania,
			
			@PathParam("fechaCierre") String fechaCierre,
			@PathParam("empresaResponsable") Integer empresaResponsable,
			@PathParam("responsable") Integer responsable)
			throws NamingException {
		log.info("setCampania web service");
		boolean empresaInsertada=false;
		InitialContext context = new InitialContext();
		 servicioCampania = (ServicioCampaniaRemote) context
		 .lookup("ejb:fidelizarteEAP/fidelizarteEJB/ServicioCampaniaImpl!com.fidelizarte.ejb.servicio.frontend.ServicioCampaniaRemote");
		 try {
			 
			
		 empresaInsertada=servicioCampania.setCampania(nombreCampania, descripcion, tipoCampania, fechaInicio,  fechaCierre, empresaResponsable, responsable);
		 
		} catch (SeguridadesException e) {
		 e.printStackTrace();
		 }
		
		  return empresaInsertada;
		
	}

	/**
	 * Metodo de Web service que permite ingresar ventas de una campania
	 * 
	 * @param campania
	 * @param empresaResponsable
	 * @param tipoVentas
	 * @param montoObjetivo
	 * @param montoObjetivoPuntoAcumulacion
	 * @param montoVentasReales
	 * @param fechaInicioVentasRaeles
	 * @param fechaLimiteVentasRaeles
	 * @return
	 * @throws NamingException
	 */
	@GET()
	@Produces(MediaType.APPLICATION_JSON)
	@Path("/datosCampania/setVentas/{campania}/{empresaResponsable}/{tipoVentas}/{montoObjetivo}"
			+ "/{montoObjetivoPuntoAcumulacion}/{montoVentasReales}/{fechaInicioVentasReales}/{fechaLimiteVentasReales}")
	public boolean setVentas(
			@PathParam("campania") Integer campania,
			@PathParam("empresaResponsable") Integer empresaResponsable,
			@PathParam("tipoVentas") Integer tipoVentas,
			@PathParam("montoObjetivo") Float montoObjetivo,
			@PathParam("montoObjetivoPuntoAcumulacion") Float montoObjetivoPuntoAcumulacion,
			@PathParam("montoVentasReales") Integer montoVentasReales,
			@PathParam("fechaInicioVentasRaeles") String fechaInicioVentasRaeles,
			@PathParam("fechaLimiteVentasRaeles") String fechaLimiteVentasRaeles)
			throws NamingException {
		log.info("setVentas web service");
		InitialContext context = new InitialContext();
		// servicioCampania = (servicioCampaniaRemote) context
		// .lookup("ejb:mpoEAP/mpoEJB/ServicioClienteImpl!com.mpo.ejb.servicio.frontend.ServicioClienteRemote");
		// try {

		// ventasInsertada=servicioCampania.setVentas(campania,
		// empresaResponsable, tipoVentas, montoObjetivo,
		// montoObjetivoPuntoAcumulacion,
		// montoVentasReales, fechaInicioVentasReales, fechaLimiteVentasReales);
		// )
		// } catch (SeguridadesException e) {
		// e.printStackTrace();
		// }
		/**
		 * return ventasInsertada;
		 */
		return true;
	}
}
